package com.cloudkinto.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.math.BigDecimal;
import java.util.Date;


@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("t_tiktok_order")
public class TiktokOrderDo extends Model<TiktokOrderDo> {
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("order_id")
    private String orderId; // 订单ID

    @TableField("buyer_message")
    private String buyerMessage; // 买家留言

    @TableField("cancellation_initiator")
    private String cancellationInitiator; // 取消方

    @TableField("shipping_provider_id")
    private String shippingProviderId; // 物流公司ID

    @TableField("create_time")
    private Long createTime; // 创建时间（bigint）

    @TableField("shipping_provider")
    private String shippingProvider; // 物流商名称

    @TableField("status")
    private String status; // 订单状态

    @TableField("fulfillment_type")
    private String fulfillmentType; // 履约类型

    @TableField("delivery_type")
    private String deliveryType; // 配送类型

    @TableField("paid_time")
    private Long paidTime; // 付款时间

    @TableField("rts_sla_time")
    private Long rtsSlaTime; // 准备完成时间

    @TableField("tts_sla_time")
    private Long ttsSlaTime; // 发货时间

    @TableField("cancel_reason")
    private String cancelReason; // 取消原因

    @TableField("update_time")
    private Long updateTime; // 更新时间

    @TableField("payment_method_name")
    private String paymentMethodName; // 支付方式

    @TableField("rts_time")
    private Long rtsTime; // RTS时间

    @TableField("tracking_number")
    private String trackingNumber; // 物流单号

    @TableField("split_or_combine_tag")
    private String splitOrCombineTag; // 合并/拆分标签

    @TableField("has_updated_recipient_address")
    private Boolean hasUpdatedRecipientAddress; // 是否修改过地址

    @TableField("cancel_order_sla_time")
    private Long cancelOrderSlaTime; // 取消订单时间

    @TableField("warehouse_id")
    private String warehouseId; // 仓库ID

    @TableField("request_cancel_time")
    private Long requestCancelTime; // 请求取消时间

    @TableField("shipping_type")
    private String shippingType; // 物流类型

    @TableField("user_id")
    private String userId; // 用户ID

    @TableField("seller_note")
    private String sellerNote; // 卖家备注

    @TableField("delivery_sla_time")
    private Long deliverySlaTime; // 配送时效

    @TableField("is_cod")
    private Boolean isCod; // 是否COD

    @TableField("delivery_option_id")
    private String deliveryOptionId; // 配送选项ID

    @TableField("cancel_time")
    private Long cancelTime; // 取消时间

    @TableField("need_upload_invoice")
    private Boolean needUploadInvoice; // 是否需要发票

    @TableField("delivery_option_name")
    private String deliveryOptionName; // 配送选项名称

    @TableField("cpf")
    private String cpf; // CPF编号

    @TableField("buyer_email")
    private String buyerEmail; // 买家邮箱

    @TableField("delivery_due_time")
    private Long deliveryDueTime; // 预计送达时间

/*   @TableField("delivery_option_required")
    private Date deliveryOptionRequired; // 要求送达时间*/

    @TableField("is_sample_order")
    private Boolean isSampleOrder; // 是否样品订单

    @TableField("shipping_due_time")
    private Long shippingDueTime; // 发货截止时间

    @TableField("collection_due_time")
    private Long collectionDueTime; // 提货截止时间

    @TableField("delivery_option_required_delivery_time")
    private Date deliveryOptionRequiredDeliveryTime; // 要求送达时间

    @TableField("is_on_hold_order")
    private Boolean isOnHoldOrder; // 是否冻结订单

    @TableField("delivery_time")
    private Long deliveryTime; // 实际送达时间

    @TableField("is_replacement_order")
    private Boolean isReplacementOrder; // 是否替换订单

    @TableField("collection_time")
    private Long collectionTime; // 提货时间

    @TableField("replaced_order_id")
    private String replacedOrderId; // 原订单ID

    @TableField("is_buyer_request_cancel")
    private Boolean isBuyerRequestCancel; // 是否买家取消

    @TableField("pick_up_cut_off_time")
    private Long pickUpCutOffTime; // 自提截止时间

    @TableField("fast_dispatch_sla_time")
    private Long fastDispatchSlaTime; // 快速发货时间

    @TableField("commerce_platform")
    private String commercePlatform; // 电商平台

    @TableField("order_type")
    private String orderType; // 订单类型

    @TableField("release_date")
    private Long releaseDate; // 释放时间

    @TableField("handling_duration_days")
    private Integer handlingDurationDays; // 处理天数

    @TableField("handling_duration_type")
    private String handlingDurationType; // 处理周期类型

    @TableField("auto_combine_group_id")
    private String autoCombineGroupId; // 自动组合组ID

    @TableField("cpf_name")
    private String cpfName; // CPF姓名

    @TableField("is_exchange_order")
    private Boolean isExchangeOrder; // 是否换货订单

    @TableField("exchange_source_order_id")
    private String exchangeSourceOrderId; // 换货来源订单ID

    @TableField("consultation_id")
    private String consultationId; // 咨询ID

    @TableField("fast_delivery_program")
    private String fastDeliveryProgram; // 极速达计划
    @TableField("is_deleted")
    private Integer isDeleted;
    @TableField("shop_id")
    private Long shopId;
    @TableField("company_id")
    private Long companyId;
    @TableField("is_send_out")
    private  Integer isSendOut;

    //地址
    @TableField("full_address")
    private String fullAddress; // 完整地址

    @TableField("phone_number")
    private String phoneNumber; // 电话号码

    @TableField("name")
    private String name; // 收件人姓名

    @TableField("first_name")
    private String firstName; // 名

    @TableField("last_name")
    private String lastName; // 姓

    @TableField("first_name_local_script")
    private String firstNameLocalScript; // 本地语言名

    @TableField("last_name_local_script")
    private String lastNameLocalScript; // 本地语言姓

    @TableField("address_detail")
    private String addressDetail; // 详细地址

    @TableField("address_line1")
    private String addressLine1; // 地址行1

    @TableField("address_line2")
    private String addressLine2; // 地址行2

    @TableField("address_line3")
    private String addressLine3; // 地址行3

    @TableField("address_line4")
    private String addressLine4; // 地址行4



    @TableField("district_info_address_level_name0")
    private String districtInfoAddressLevelName0;

    @TableField("district_info_address_name0")
    private String districtInfoAddressName0;

    @TableField("district_info_address_level0")
    private String districtInfoAddressLevel0;


    @TableField("district_info_address_level_name1")
    private String districtInfoAddressLevelName1;

    @TableField("district_info_address_name1")
    private String districtInfoAddressName1;

    @TableField("district_info_address_level1")
    private String districtInfoAddressLevel1;

    @TableField("district_info_address_level_name2")
    private String districtInfoAddressLevelName2;

    @TableField("district_info_address_name2")
    private String districtInfoAddressName2;

    @TableField("district_info_address_level2")
    private String districtInfoAddressLevel2;

    @TableField("district_info_address_level_name3")
    private String districtInfoAddressLevelName3;

    @TableField("district_info_address_name3")
    private String districtInfoAddressName3;

    @TableField("district_info_address_level3")
    private String districtInfoAddressLevel3;

    @TableField("district_info_address_level_name4")
    private String districtInfoAddressLevelName4;

    @TableField("district_info_address_name4")
    private String districtInfoAddressName4;

    @TableField("district_info_address_level4")
    private String districtInfoAddressLevel4;

    @TableField("postal_code")
    private String postalCode; // 邮政编码

    @TableField("region_code")
    private String regionCode; // 区域代码

    @TableField("delivery_preferences_drop_off_location")
    private String deliveryPreferencesDropOffLocation; // 配送偏好-自提点


}